<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
  var geocoder = new google.maps.Geocoder();
  var directionDisplay;
  var directionsService = new google.maps.DirectionsService();
  var map;
  var marker;
  var infowindow = new google.maps.InfoWindow();
  var markersArray = [];
  var flightPlanCoordinates = [];
  var flightPath;
  var poly;
  var localidadCompleta=" ";

  /*
   * Creamos la marca en el mapa, el cual le pasamos por referencia la direccion de cada punto
   */
  function CrearMarca(location) {				
	     marker = new google.maps.Marker({
                   position: location,
                   map: map
                 });
		
          markersArray.push(marker);
       }
	   
	   // Crear mensaje del marcador, anteriormente creado
   function CrearMensajeMarcador(location,LAT_LNG){
		infowindow.setContent('<h3>El Paquete llego:</h3>'+ location);
		infowindow.open(map, marker);
		infoWindow.close();
		}
		 
	/*
	 * la funcion MostrarInformacion() imprime una lista con las rutas por donde pasan un determinado paquete
	 * de donde salio un paquete hasta donde llego.
	 */	
   function MostrarInformacion(){
	   var numero_Marcadores = markersArray.length;
	   var contador = poly.getLength();
	   var summaryPanel = document.getElementById("directions_panel");
	   var aux=0;
	    summaryPanel.innerHTML = "<h2>Ruta del Paquete: </h2><br />";
		         // recorremos por complemento el ARRAY de las coordenadas de los puntos por donde pasa un determinado paquete
					for (var j in flightPlanCoordinates) {		
					// se Instancia un objeto del tipo LatLng con las coordenas de cada uno de los puntos	
					   var latlng = new google.maps.LatLng(flightPlanCoordinates[j].lat(),flightPlanCoordinates[j].lng());
					   // la funcion Geocoder de vuelve un results con el nombre de la ubicacion de cada punto en el GoogleMap
					   geocoder.geocode({'latLng': latlng}, function(results, status) {
						    if (status == google.maps.GeocoderStatus.OK) {
								localidadCompleta=results[0].formatted_address;
							 if (aux==0){
							             summaryPanel.innerHTML += "<h3>Salida desde: </h3>";
										// CrearMensajeMarcador(results[1].formatted_address,latlng)
							 }
							   else{
								     if (aux==1){
										 summaryPanel.innerHTML += "<h3>Rutas: </h3>";
								     }
									 
								     if ((aux!=0) && (aux!=contador-1)){
							             summaryPanel.innerHTML += "<b>" + aux + ".- </b>";
							            
									 }
							          if (aux==contador-1){
							              summaryPanel.innerHTML += "<h3>llego a: </h3>";
										  //CrearMensajeMarcador(localidadCompleta);
							          }
							   }
								aux+=1;	 
							   summaryPanel.innerHTML += "<b>"+ localidadCompleta + "</b><br />";
							   CrearMensajeMarcador(localidadCompleta);
							
                                   
								 
                          }
						
						});
						 
				   }
								 

	   }

  /*
   *   funcion para inicializar el mapa
   */
  function initialize() {
	   directionsDisplay = new google.maps.DirectionsRenderer();
       var PosicionInicial = new google.maps.LatLng(17.99029361547616 , -66.34283447265625);
       var myOptions = {
           zoom: 3,
           center: PosicionInicial,
           mapTypeId: google.maps.MapTypeId.ROADMAP
  };
        map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
		directionsDisplay.setMap(map);
        flightPlanCoordinates = [
		                              //new google.maps.LatLng(52.9399159 , -73.5491361), // Quebec, canada
									  new google.maps.LatLng(40.4166909 , -3.70034540000006), // Madrid, España
                                      new google.maps.LatLng(36.114646 , -115.17281600000001), // Las Vegas, Nevada, Usa
                                      new google.maps.LatLng(25.7889689 , -80.22643929999998), //Miami, Usa
									  new google.maps.LatLng(10.4636755 , -66.97720700000002), // UCAB, Caracas, Venezuela
									  new google.maps.LatLng(-33.46912 , -70.641997) // santiago de chile, chile
									  //new google.maps.LatLng(-34.6084175 , -58.37316129999999)  // Buenos aires, Argentina	 
                                    ];
									
         flightPath = new google.maps.Polyline({
                             path: flightPlanCoordinates,
                             strokeColor: "#00F",
                             strokeOpacity: 1.0,
                             strokeWeight: 3
                        });
		
		// Recorremos el arreglos de las posiciones y se las pasamos a la funcion CrearMarca(position)				
		for (i in flightPlanCoordinates) {				
	       CrearMarca(flightPlanCoordinates[i])
		   
		} 
		// Seteamos el la ruta del Polyline al MAPA			
             flightPath.setMap(map);
			 poly=flightPath.getPath();
			 
			     
                            		     
}

       google.maps.event.addDomListener(window, 'load', initialize);
</script>